Verwendung des Ad-hoc Designers
Der Ad-hoc Designer ist kein Ersatz für den Web Designer
Er ist eine komplett browserbasierte Anwendung (HTML+Javascript), die es Ihnen ermöglicht, einfache Berichte wie einfache Tabellen oder Diagramme sehr schnell zu entwerfen. Es bietet nur die wichtigsten Funktionen des kompletten List & Label Designers, erfordert aber keine Installation auf dem Client-Computer wie der Web Designer (siehe auch Verwendung des Web Designers). Darüber hinaus bietet es eine vereinfachte Benutzeroberfläche, die auf jedem modernen Gerät, Betriebssystem und Browser einsetzbar ist.
Die Projekte des Ad-hoc Designers werden in einem speziellen Dateiformat gespeichert
Eine mit dem Ad-hoc Designer erstellte Projektdatei kann wie ein reguläres List & Label Projekt zum Exportieren oder Drucken verwendet werden. Sie können es auch im Desktop Designer öffnen, um die erweiterten Eigenschaften anzupassen, ein mit dem Desktop Designer erstelltes oder modifiziertes Projekt kann jedoch nicht in den Ad-hoc Designer geladen werden.
Jede Instanz des Ad-hoc Designers verwendet eine eigene Session
Jedes Mal, wenn ein Benutzer den Ad-hoc Designer im Browser öffnet, wird ein IAdhocDesignerSession-Objekt auf dem Server erstellt, das diese bestimmte Instanz des Designers verwaltet. Dieses Session-Objekt lädt das Projekt, wenn der Designer es auf dem Client benötigt und speichert das Projekt, wenn der Client eine Projektdatei an den Server sendet, um es zu speichern. In der Regel gibt es also für jeden Browser-Tab, auf dem der Ad-hoc Designer geladen ist, eine Ad-hoc Designer-Session auf dem Server, die so lange besteht, bis der Designer auf dem Client geschlossen wird.
Um den Ad-hoc Designer in Ihre Anwendung zu integrieren, verbinden Sie die Session mit dem Rest Ihrer Anwendung, um Operationen wie das Laden und Speichern des Projekts oder die Erstellung der Datenquelle zu übernehmen.
Der Ad-hoc Designer ist eine Anwendung in Ihrer Anwendung
Er basiert auf dem ASP. NET MVC-Framework, hat aber seine eigenen Routes und Controller, die unabhängig von Ihrer eigenen Anwendung sind (werden oft nicht benötigt). Bitte beachten Sie, dass es sich nicht um eine Komponente handelt, die Sie auf Ihrer Internetseite (oder Ansicht) einbetten können. Der Ad-hoc Designer wird durch Navigation (Umleitung) zu einer speziellen URL geöffnet, d. h. er verwendet immer die ganze Seite. Wenn Sie es als Teil einer anderen Seite anzeigen möchten, müssen Sie es in ein iframe laden.
Schritt 1: Hinzufügen der notwendigen Abhängigkeiten
Um den Ad-hoc Designer in ein eigenes ASP.NET Projekt zu integrieren, verwenden Sie die folgenden List & Label NuGet Packages. Die weiteren externen Abhängigkeiten werden dabei automatisch hinzugefügt:
- combit.ListLabel30
- combit.ListLabel30.AdhocDesign
- combit.ListLabel30.AdhocDesign.Web
Weitere Details zur Verwendung der NuGet Packages und dem Deployment finden sich unter NuGet Package Unterstützung.
Schritt 2: Konfigurationen durchführen
Die weitere Vorgehensweise unterscheidet sich bei .NET 6/.NET 8/.NET 9 und .NET 4.8.
.NET 6/.NET 8/.NET 9:
Fügen Sie in der Datei startup.cs die folgenden Zeilen am Ende der Configure-Methode hinzu:
...
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// do some other stuff here
// ...
app.UseAdhocDesigner(c => { });
}
...
Und in der ConfigureServices-Methode fügen Sie noch diese Zeile hinzu:
...
public void ConfigureServices(IServiceCollection services)
{
// do some other stuff here
// ...
services.AddAdhocDesigner();
}
...
.NET 4.8:
Der Ad-hoc Designer basiert auf ASP. NET MVC. Wenn Ihre Anwendung gestartet wird, müssen Sie das Routing und eine andere Konfiguration des Ad-hoc Designers einrichten:
AdhocWebDesigner.RegisterRoutes()
aufrufen bevor (!) die eigenen Routes registriert werden (siehe auch die Datei RouteConfig.cs)
AdhocWebDesigner.Setup(...)
während des Startens der Anwendung aufrufen (siehe auch die Application_Start() Methode in der Datei global.asax). Es sind viele Optionen pro Sitzung definiert, aber die globalen Optionen können mit diesem Aufruf konfiguriert werden
Schritt 3: Öffne den Ad-hoc Designer
Wie bereits oben erwähnt, gibt es auf dem Server für jeden aktiven Ad-hoc Designer auf einem Client ein IAdhocDesignerSession-Objekt. Bevor der Ad-hoc Designer auf dem Client geöffnet werden kann, müssen Sie ein neues Objekt vom IAdhocDesignerSession-Interface anlegen.
Wir empfehlen Ihnen, einen der im Lieferumfang enthaltenen Ad-hoc-Session-Typen zu verwenden, die das Laden & Sichern für Sie übernehmen:
AdhocDesignerSession.FromFile(...)
aufrufen, um eine Ad-hoc Designer Session für eine Projektdatei aus dem Dateisystem zu erstellen
AdhocDesignerSession.FromRepositoryItem(...)
aufrufen, um eine Ad-hoc Designer Session für ein Element aus dem Repository zu erstellen
Zuletzt rufen Sie this.RedirectToAdhocDesigner(session)
in einer Aktion des MVC-Controllers auf, um den Request auf einen neuen Ad-hoc Designer umzuleiten (der Namsespace combit.Reporting.AdhocDesign.Web wird benötigt, um diese Extension-Methode verfügbar zu machen). Ein Beispiel hierzu finden Sie im mitgelieferten ASP.NET Beispielprojekt "C# Ad-hoc Designer Sample" unter HomeController.OpenNewProject()
.
Wenn mehr Kontrolle beim Erzeugen, Laden oder Speichern eines Projektes benötigt wird
Erstellen Sie einen eigenen Ad-hoc Designer Sessiontype und lassen diesen von AdhocDesignerSessionBase
. erben. Viele Methoden sind virtuell und können übersteuert werden, z. B. wenn die Standardwerte für ein neues Projekt angepasst werden sollen.
Wenn mehr Kontrolle über die Lebenszeit und die Verwaltung der Ad-hoc Designer Sessions benötigt wird
Erstellen Sie eine eigene Implementierung der Schnittstelle IAdhocDesignerSessionManager
und übergeben Sie diese an die Methode AdhocDesignerWeb.Setup(...)
(siehe Schritt 3)